|

27.03.2018, 15:02
|
Интересующийся
|
|
Регистрация: 30.01.2018
Сообщений: 29
|
|
Индикация загрузки
На сервер nodejs отправляется файл через ajax. На клиенте присутствует индикация - полоса выполнения операций. После получения файла сервер должен изменить этот файл дважды.
На стороне сервера я снабдил код метками типа res.write('2'), чтобы на клиенте получать эти метки через (XMLHttpRequest) xhr.onprogress , чтобы по кусочкам прибавлять размер индикатора загрузки. Но, вместо получения этих кусочков с сервера клиент выдаёт всё целиком сразу - типа "2345". Как добиться получения этих кусочков по отдельности?
|
|

27.03.2018, 18:56
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
Сообщение от dfcz112
|
На сервер nodejs отправляется файл через ajax.
|
Если отправка на сервер - то это
Цитата:
|
Стадия закачки (upload). На ней данные загружаются на сервер. Эта фаза может быть долгой для POST-запросов. Для отслеживания прогресса на стадии закачки существует объект типа XMLHttpRequestUpload, доступный как xhr.upload и события на нём.
|
https://learn.javascript.ru/xhr-onprogress
|
|

27.03.2018, 20:23
|
Интересующийся
|
|
Регистрация: 30.01.2018
Сообщений: 29
|
|
Индикатор загрузки я уже реализовал. Именно так. Мне другое нужно.
После загрузки идёт другой запрос, и в ходе его выполнения на сервере вызываются res.write('part'); Клиент ловит эти сообщения через xhr.onprogress и соответственно этому отображает полосу загрузки. Но, проблема в том, что в консоли я вижу не по отдельности эти 'part', а все сразу, как будто onprogress обработчика нету, а есть только onload. Я вот об этом спрашиваю
|
|

27.03.2018, 21:49
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
dfcz112,
onprogress не получает ответ с сервера - он получает только проценты скачанного
Последний раз редактировалось Dilettante_Pro, 28.03.2018 в 09:53.
|
|

27.03.2018, 22:04
|
Интересующийся
|
|
Регистрация: 30.01.2018
Сообщений: 29
|
|
Хорошо. ТОгда что я могу сделать в моём случае?
|
|

28.03.2018, 08:33
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
dfcz112,
зачем вам вообще это нужно?
Если файл большой и сервер не позволяет его загрузить, тогда такие файлы грузят на север по частям, склеивая его на сервере. Загрузку каждой части производят по положительному ответу о загрузке предыдущей, и общий индикатор загрузки будет определятся этим диалогом.
Еще такой индикатор может потребоваться если данные передаются серверу по частям, когда общее количество полей формы превышает разрешенный сервером размер.
У вас с чего такая необходимость?
|
|

28.03.2018, 15:41
|
Интересующийся
|
|
Регистрация: 30.01.2018
Сообщений: 29
|
|
На сервере после загрузки файла над этим файлом будут выполняться операции. Я хочу чтобы на клиенте была индикация этого процесса, этакий прогрессбар.
|
|

28.03.2018, 15:51
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от dfcz112
|
На сервере после загрузки файла над этим файлом будут выполняться операции. Я хочу чтобы на клиенте была индикация этого процесса, этакий прогрессбар.
|
Операции над файлом возможны только тогда, когда он полностью загружен на сервер, то есть процесс работы над файлом отношения к загрузке его, а значит и к индикатору процесса загрузки, не имеет.
|
|
|
|